package ah.apache.digester;

import java.io.IOException;

import org.apache.commons.digester.Digester;
import org.xml.sax.SAXException;

public class Test {
	private String configFile;
	public void parser() throws IOException, SAXException {
		//新建Digester实例
		Digester digester = new Digester();
		// This method pushes this (SampleDigester) class to the Digesters
		// object stack making its method s available to processing rules.
		digester.push(this);
		/*quasar_module/module_info为XML文件中的节点路径：＜quasar_module＞＜module_info＞...
		*addModuleInfo为本类中的一个方法(见下)，即当碰到＜quasar_module＞＜module_info＞节点时
		*调用addModuleInfo方法，6表示该方法用六个参数，
		*/
		digester.addCallMethod("quasar_module/module_info", "addModuleInfo", 6);
		//逐个设置参数，第一个参数的索引为0
		digester.addCallParam("quasar_module/module_info/name", 0);
		digester.addCallParam("quasar_module/module_info/description", 1);
		digester.addCallParam("quasar_module/module_info/version", 2);
		digester.addCallParam("quasar_module/module_info/author", 3);
		digester.addCallParam("quasar_module/module_info/mail", 4);
		digester.addCallParam("quasar_module/module_info/update_time", 5);
		// This method starts the parsing of the document.

		digester.parse(this.configFile);
		
		digester.setValidating(false);
		digester.addObjectCreate(null, getClass());
		digester.addBeanPropertySetter("", "");
		
	}
}
